package com.jidong.test_springboot.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jidong.test_springboot.dao.DeptDao;
import com.jidong.test_springboot.entity.Dept;

import lombok.extern.slf4j.Slf4j;

@Service
@Slf4j
public class DeptService{

	@Autowired
	private DeptDao deptDao;
	
	
	/*Cacheable是存取缓存信息，既能存，也能取，value是指把信息存到哪个位置，默认有一个叫default的位置。 key是数据key，如果不指定key会默认用方法参数作为key**/
	// key 放的是spEL表达式，整个用字符串引号引起来，里面写表达式，如获取方法名 #root.methodName  .表达式原样输出的内容用单引号引起来，
	//@Cacheable(value="default",key="'dept'")     //这句话的意思是从缓存层中读取数据，如果没有在执行list方法，并把结果集放入缓存，下次执行则自动从缓存读取
	public IPage<Dept> list(IPage<Dept> page,QueryWrapper<Dept> queryWrapper){
		log.info("读取数据库信息");
		return deptDao.selectPage(page, queryWrapper);
	}
	
	public int insert(Dept dept) {
		return deptDao.insert(dept);
	}
	
	public int updateById(Dept dept) {
		return deptDao.updateById(dept);
	}
	
	public int deleteById(int id) {
		return deptDao.deleteById(id);
	}

	public List<Dept> selectAll() {
		return deptDao.selectList(null);
	}
}
